/**
 * @title Hardhat配置文件
 * @description 配置Solidity编译环境、目录路径和网络连接
 * Hardhat是一个以太坊开发环境，用于编译、部署、测试和调试智能合约
 */

// 导入Hardhat工具箱插件
// @nomicfoundation/hardhat-toolbox包含了常用的Hardhat插件集合
// 包括: @nomicfoundation/hardhat-chai-matchers, @nomicfoundation/hardhat-network-helpers,
// @nomiclabs/hardhat-ethers, @nomiclabs/hardhat-etherscan, @typechain/hardhat, hardhat-gas-reporter
require("@nomicfoundation/hardhat-toolbox");

/**
 * @type import('hardhat/config').HardhatUserConfig
 * 导出Hardhat配置对象
 */
module.exports = {
  /**
   * Solidity编译器配置
   * 指定使用的Solidity版本
   */
  solidity: "0.8.17",
  
  /**
   * 项目目录路径配置
   * 定义各个文件目录的位置
   */
  paths: {
    sources: "./smart-contracts", // 智能合约源代码目录
    tests: "./test", // 测试文件目录
    cache: "./cache", // 编译缓存目录
    artifacts: "./artifacts" // 编译输出目录（包含ABI和字节码）
  },
  
  /**
   * 网络配置
   * 定义可连接的区块链网络
   */
  networks: {
    /**
     * Hardhat内置网络
     * 用于本地开发和测试
     * 提供本地以太坊环境，无需运行外部节点
     */
    hardhat: {
      chainId: 1337 // 指定链ID，1337是Hardhat的默认值，与MetaMask等钱包兼容
    },
    
    /**
     * 本地开发网络
     * 连接到本地运行的以太坊节点
     * 通常通过 npx hardhat node 命令启动
     */
    localhost: {
      url: "http://127.0.0.1:8545" // 本地节点的HTTP RPC URL
    }
  }
};